我有两个相关的枚举。枚举1:publicenumHttpMethodName{GET,POST,PUT,DELETE;}枚举2:publicenumProtocolOperation{CREATE(1),RETRIEVE(2),UPDATE(3),DELETE(4),NOTIFY(5);privateBigIntegeroperationId;publicBigIntegergetOperationId(){returnoperationId;}privateProtocolOperation(intoperationId){this.operationId=BigInteger.va
我有一个带有基本方向(北、东、南、西)的枚举类:publicenumDirection{NORTH,EAST,SOUTH,WEST;}有没有办法可以为同一事物使用多个名称?例如这样的事情:publicenumDirection{NORTHorN,EASTorE,SOUTHorS,WESTorW;}在实践中,我想要的是能够对N或NORTH变量进行签名,并使这两个操作完全相同。例子:Directiondirection1=newDirection.NORTH;Directiondirection2=newDirection.N;//direction1==direction2
我不知道我是不是唯一知道这一点的人,但是枚举的值并不是隐式最终的,可以修改。enumEnumTest{TOTO("TOTO1"),TATA("TATA2"),;privateStringstr;privateEnumTest(Stringstr){this.str=str;}@OverridepublicStringtoString(){returnstr;}}publicstaticvoidmain(String[]args){System.out.println(EnumTest.TATA);EnumTest.TATA.str="newVal";System.out.println
我有如下界面:packageexample;importjava.awt.Point;publicinterfaceThing{publicenumMovingState{MOVING_LEFT,MOVING_UP,MOVING_RIGHT,MOVING_DOWN}publicvoidsetNewPosition(MovingStatestate);publicPointgetPosition();}和一个实现类:packageexample;importjava.awt.Point;publicclassThingImplimplementsThing{publicenumMovin
我有一个枚举:publicenumPermissionsEnum{ABC("Abc"),XYZ("Xyz"),....}然后我有一个枚举列表。我想检查我的列表是否至少有一个枚举。我目前通过迭代方法检查它。我也知道有一种方法可以使用||检查list.contains(enum.ABC..)||list.contains(enum.XYZ)||...。有更好的方法吗?Thisquestion展示了如果目标列表是一个字符串列表如何做到这一点,如果该列表是另一个枚举列表,我想获得匹配状态。 最佳答案 Collections.disjoint
我和我的同事正在讨论枚举中的逻辑。我个人的偏好是在Java枚举中不有任何逻辑(尽管Java提供了这样做的能力)。这种情况下的讨论集中在枚举中有一个返回映射的便捷方法:publicenumPackageType{Letter("01","Letter"),....Tube("02","PackagingTube");privateStringpackageCode;privateStringpackageDescription;....publicstaticMaptoMap(){Mapmap=newLinkedHashMap();for(PackageTypepackageType:P
publicenumA{A(1);privateA(inti){}privateA(){super();//compile-error//CannotinvokesuperconstructorfromenumconstructorA()}}这里是enumA的层次结构extendsfromabstractjava.lang.Enumextendsjava.lang.ObjectClassc=Class.forName("/*path*/.A");System.out.println(c.getSuperclass().getName());System.out.println(Modi
我没有真正幸运地通过使用Google得到这个比较的简明答案,而不是自己做耗时的评估,我想我会先问。我相当确定使用枚举的switch语句会比if-then-else语句执行得更快,尽管它是否有明显的差异是另一个问题。有人可以帮我解释一下吗?感谢大家的快速回复,我会在未来的项目中牢记这一点。 最佳答案 是的,确实如此,因为一般而言,switch语句比if/else链运行得更快。虽然生成的字节码并不总是性能比较的权威来源,但您可以检查它以获得更好的想法。例如这段代码:classA{enumN{ONE,TWO,THREE}voidtestS
考虑以下ssccepublicenumFlippableA(Z),B(Y),Y(B),Z(A);privatefinalFlippableopposite;privateFlippable(Flippableopposite){this.opposite=opposite;}publicFlippableflip(){returnopposite;}}这不会编译,因为Z和Y还没有被声明为A和的参数>B的构造函数。可能的解决方案1:硬编码方法publicenumFlippable{A{publicFlippableflip(){returnZ;}},B{publicFlippablefl
我正在用Java制作(我自己的)轮盘赌,玩家可以下注的一种类型是选择将要滚动的颜色。(偶数为黑色,奇数为红色)。有没有一种方法可以使用switch语句将字符串与枚举进行比较?privateenumcolors{red,black};privateStringcolorGuess;privatebooleancolorVerify=false;publicvoidgetColorGuess(){do{Scannerin=newScanner(System.in);colorGuess=in.nextLine();switch(colors){casered:colorVerify=tru